package front

import (
	"gitee.com/shangc1016/libscanner/front/filehash"
	"gitee.com/shangc1016/libscanner/front/maven"
)

type PM interface {
	TypeMatch(string) bool // 根据源码确定哪种项目
	Self() string          // 哪种项目
	Check()                // 依赖分析
	Output(string, string)
}

var PackageManagers []PM = []PM{
	// 先匹配别的包管理器
	maven.NewMavenScanner(),

	// 最后一个是filehash
	filehash.NewHashManager(),
}

func Scan(projectPath, outputPath, outputType string) {
	for _, pm := range PackageManagers {
		if pm.TypeMatch(projectPath) {
			pm.Check()
			pm.Output(outputPath, outputType)
		}
	}
}
